home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 65.zip / BS1 part 65 / Amos Image Manipulator 1.1.adf / men.Bak / men.amosSourceCode < prev    next >
AMOS Source Code  |  1999-12-26  |  14KB  |  598 lines

  1. '++++ Welcome to The Amos Image Manipulator By Martin Donnelly 
  2. '++++  
  3. '++++ This is for those people that do not hav PIX-MATE
  4. '++++
  5. '++++ Click on eikons to use that function 
  6. Global A,H,W,CL,F$,SCR,MEM,C,C1,C2,C3,MOM,CL$,CL1$
  7. CL$=""
  8. F$="Nothing Loaded!"
  9. MOM=Chip Free
  10. If Chip Free>250000
  11.    MEM=True
  12. Else 
  13.    MEM=False
  14. End If 
  15. STRT
  16. Procedure STRT
  17.    Close Editor 
  18.    Close Workbench 
  19.    KLEAR
  20.    SET_MENU
  21.    S:
  22.    If MEM=0 Then Menu Inactive(3,11)
  23.    H1$=Str$(H)
  24.    W1$=Str$(W)
  25.    CL1$=Str$(SCR)
  26.    W$="Width :"+W1$
  27.    H$="hieght:"+H1$
  28.    CL$="No of cols:"+CL1$
  29.    Menu$(1,7,1)="Name of pic"
  30.    Menu$(1,7,2)=F$
  31.    Menu$(1,7,3)=W$
  32.    Menu$(1,7,4)=H$
  33.    Menu$(1,7,5)=CL$
  34.    C=0
  35.    Do 
  36.       M=Mouse Click
  37.       C=1 : C1=0 : C2=0 : C3=0
  38.       C=Choice : C1=Choice(1) : C2=Choice(2) : C3=Choice(3)
  39.       '      Print At(0,9);C,C1,C2,C3
  40.       M=Mouse Click
  41.       A$=Inkey$
  42.       If A$="l" Then LODE : Goto S
  43.       If A$="s" Then SVE : Goto S
  44.       If C and C1=1 and C2=1 Then LODE : Goto S
  45.       If C and C1=1 and C2=2 Then SVE : Goto S
  46.       If C and C1=1 and C2=8 Then QUIT : Edit 
  47.       '
  48.       '
  49.       If C and C1=3 and C2=1 Then SMEAR : Goto S
  50.       If C and C1=3 and C2=2 Then PIX : Goto S
  51.       If C and C1=3 and C2=3 Then EFFECTS : Goto S
  52.       If C and C1=3 and C2=4 Then CCOL
  53.       If C and C1=3 and C2=5 Then SHRINK : Goto S
  54.       If C and C1=3 and C2=6 and C3=2 Then FLIPH : Goto S
  55.       If C and C1=3 and C2=6 and C3=3 Then FLIPV : Goto S
  56.       If C and C1=3 and C2=7 and C3=1 Then KLEAR : Goto S
  57.       If C and C1=3 and C2=8 Then FUN : Goto S
  58.       If C and C1=3 and C2=9 Then DK : Goto S
  59.       If C and C1=3 and C2=10 Then SPLAT : Goto S
  60.       If C and C1=3 and C2=11 Then MTOL : Goto S
  61.       If C and C1=3 and C2=12 Then HALF : Goto S
  62.       '
  63.       '
  64.       If A$="b" Then BLACK : Goto S
  65.       If A$="j" Then BLOW
  66.    Loop 
  67. End Proc
  68. Procedure SET_MENU
  69.    CL=Screen Colour
  70.    Ink Rnd(16)
  71.    'Set Text 4
  72.    H1$=Str$(H)
  73.    W1$=Str$(W)
  74.    CL1$=Str$(CL)
  75.    W$="Width :"+W1$
  76.    H$="hieght:"+H1$
  77.    CL$="No of cols:"+CL1$
  78.    '
  79.    '
  80.    Menu$(1)="  INFO  "
  81.    Menu$(1,1)="Load a pic  "
  82.    Menu$(1,2)="Save a pic  "
  83.    Menu$(1,3)="------------" : Menu Inactive(1,3)
  84.    Menu$(1,4)="About    >> "
  85.    Menu$(1,5)="Version  >> "
  86.    Menu$(1,6)="------------" : Menu Inactive(1,6)
  87.    Menu$(1,7)="Pic info >> "
  88.    Menu$(1,8)="Quit        "
  89.    Menu$(1,9)="WORKBENCH   "
  90.    '
  91.    Menu$(1,5,1)="Version 1.1"
  92.    Menu$(1,5,2)="Look out for version 2"
  93.    Menu Inactive(1,5,1)
  94.    Menu Inactive(1,5,2)
  95.    Set Text 4
  96.    Menu$(1,4,1)="THE AMOS IMAGE MANIPULATOR"
  97.    Set Text 0
  98.    Menu$(1,4,2)="By Martin Donnelly"
  99.    Menu$(1,4,3)="Copyright Megasoft 1991"
  100.    Menu$(1,4,4)="Hellos to Nick,Alan,John"
  101.    Menu$(1,4,5)="Veronika,Dave,Liam,and"
  102.    Menu$(1,4,6)="everyone at Lorenzos P.d. &"
  103.    Menu$(1,4,7)="Zenith P.d. and Megasoft"
  104.    '
  105.    '   Menu$(1,5,1)="HELP"
  106.    '
  107.    Menu$(1,7,1)="Name of pic"
  108.    Menu$(1,7,2)=F$
  109.    Menu$(1,7,3)=W$
  110.    Menu$(1,7,4)=H$
  111.    Menu$(1,7,5)=CL$
  112.    '
  113.    Menu Inactive(1,4,1)
  114.    Menu Inactive(1,4,2)
  115.    Menu Inactive(1,4,3)
  116.    Menu Inactive(1,4,4)
  117.    Menu Inactive(1,4,5)
  118.    Menu Inactive(1,4,6)
  119.    Menu Inactive(1,4,7)
  120.    '
  121.    Menu$(3)="  Function  "
  122.    Menu$(3,1)="Smooth         "
  123.    Menu$(3,2)="Pixilize       "
  124.    Menu$(3,3)="Inverse Cols   "
  125.    Menu$(3,4)="Change Cols >> "
  126.    Menu$(3,5)="Shrink      >> "
  127.    Menu$(3,6)="Flip        >> "
  128.    Menu$(3,7)="Clear          " : Menu$(3,7,1)="Are you sure?"
  129.    Menu$(3,8)="Shift Colours  "
  130.    Menu$(3,9)="Dekay          "
  131.    Menu$(3,10)="Splatter       "
  132.    Menu$(3,12)="Half vertical  "
  133.    '
  134.    Menu$(3,8,1)="Colours up  "
  135.    Menu$(3,8,2)="Colours Down"
  136.    '
  137.    Menu$(3,9,1)="Length of time"
  138.    Menu$(3,9,2)="Short         "
  139.    Menu$(3,9,3)="Long          "
  140.    Menu Inactive(3,9,1)
  141.    '
  142.    Menu$(3,11)="Medium to Lores"
  143.    '
  144.    Menu$(3,4,1)="Change to" : Menu Inactive(3,4,1)
  145.    Menu$(3,4,2)="Red      "
  146.    Menu$(3,4,3)="Green    "
  147.    Menu$(3,4,4)="Blue     "
  148.    Menu$(3,4,5)="White    "
  149.    '
  150.    Menu$(3,5,1)="Shrink by" : Menu Inactive(3,5,1)
  151.    Menu$(3,5,2)="Quarter  "
  152.    Menu$(3,5,3)="Eighth   "
  153.    Menu$(3,5,4)="Sixteenth"
  154.    '
  155.    Menu$(3,6,1)="Direction" : Menu Inactive(3,6,1)
  156.    Menu$(3,6,2)="Horizontaly"
  157.    Menu$(3,6,3)="Verticaly  "
  158.    Menu Movable(1)
  159.    Menu On 
  160.    Menu Tline(1)
  161.    If SCR=0 Then Menu Inactive(3)
  162.    If SCR=89 Then Menu Active(3)
  163. End Proc
  164. Procedure LODE
  165.    '  Cls 
  166.    ' Print "Please enter picture name"
  167.    F$=Fsel$("","",".A. .I. .M.","Load a picture")
  168.    If F$="" Then Goto P
  169.    Change Mouse 3
  170.    Load Iff F$,0
  171.    SCR=89
  172.    Change Mouse 1
  173.    H=Screen Height
  174.    W=Screen Width
  175.    CL=Screen Colour
  176.    H1$=Str$(H)
  177.    W1$=Str$(W)
  178.    CL1$=Str$(CL)
  179.    W$="Width :"+W1$
  180.    H$="hieght:"+H1$
  181.    CL$="No of cols:"+CL1$
  182.    C=0
  183.    P:
  184.    C=0 : C1=0
  185.    SET_MENU
  186.    Menu On 
  187. End Proc
  188. Procedure SMEAR
  189.    If SCR=0 Then ERR
  190.    Change Mouse 3
  191.    Screen 0
  192.    For Y=0 To H
  193.       For X=0 To W
  194.          M=Mouse Click
  195.          If M=1 Then Goto A
  196.          F=Point(X,Y) : F1=Point(X+1,Y)
  197.          D=F+F1
  198.          D=D/2 : If D<0 Then D=0
  199.          Ink D
  200.          Plot X,Y
  201.       Next 
  202.    Next 
  203.    A:
  204.    Change Mouse 1
  205. End Proc
  206. Procedure PIX
  207.    If SCR=0 Then ERR
  208.    If SCR<89 Then Goto S
  209.    Change Mouse 3
  210.    For Y=0 To H Step 8
  211.       For X=0 To W Step 8
  212.          M=Mouse Click
  213.          If M=1 Then Goto A
  214.          C=0 : D=0 : U=4 : E=4
  215.          'For E=1 To 8
  216.          '  For U=1 To 8
  217.          M=Mouse Click : If M=1 Then Change Mouse 1 : Goto S
  218.          C=Point(X+U,Y+E)
  219.          'D=D+C 
  220.          ' Next 
  221.          'Next  
  222.          'C=D/64 : Ink C
  223.          Ink C
  224.          Bar X,Y To X+8,Y+8
  225.       Next 
  226.    Next 
  227.    Change Mouse 1
  228. End Proc
  229. Procedure SHRINK
  230.    If SCR=0 Then ERR
  231.    If C3=2 Then F=160 : B=2 : J=H/2
  232.    If C3=3 Then F=60 : B=4 : J=H/4
  233.    If C3=4 Then F=30 : B=8 : J=H/8
  234.    Change Mouse 3
  235.    For Y=0 To H Step B
  236.       O=O+1 : I=0
  237.       For X=0 To W Step B
  238.          M=Mouse Click
  239.          If M=1 Then Goto A
  240.          I=I+1
  241.          C=Point(X,Y)
  242.          Ink C
  243.          Plot I,O
  244.       Next 
  245.    Next 
  246.    Ink 0
  247.    Bar 0,J To W,H
  248.    Bar I,0 To W,H
  249.    Change Mouse 1
  250. End Proc
  251. Procedure SET
  252.    Paper 0
  253.    Ink 1,3
  254.    Screen 0
  255.    Box 8,2 To 43,12 : 
  256.    Ink 3 : Paint 9,3
  257.    Ink 1
  258.    Text 10,10,"LOAD"
  259.    Text 47,10,"SAVE"
  260.    Box 45,2 To 79,12
  261.    Ink 3 : Paint 46,3
  262.    Ink 1,3
  263.    Text 83,10,"SMEAR"
  264.    Box 81,2 To 124,12
  265.    Ink 3 : Paint 82,3 : Ink 1
  266.    Text 83,23,"FUN"
  267.    Box 81,15 To 107,25
  268.    Ink 3 : Paint 82,16 : Ink 1
  269.    Text 112,23,"FLIP V"
  270.    Box 110,15 To 160,25
  271.    Ink 3 : Paint 111,16 : Ink 1
  272.    Text 165,23,"FLIP H"
  273.    Box 163,15 To 213,25
  274.    Ink 3 : Paint 164,16 : Ink 1
  275.    Text 128,10,"PIX"
  276.    Box 126,2 To 153,12
  277.    Ink 3 : Paint 127,3 : Ink 1
  278.    Text 157,10,"SHRINK"
  279.    Box 155,2 To 205,12
  280.    Ink 3 : Paint 156,3 : Ink 1
  281.    Text 208,10,"INVRT"
  282.    Box 207,2 To 248,12
  283.    Ink 3 : Paint 208,3 : Ink 1
  284.    Text 252,10,"QUIT"
  285.    Box 250,2 To 286,12
  286.    Ink 3 : Paint 251,3 : Ink 1
  287.    Text 252,23,"A"
  288.    Box 250,15 To 262,25
  289.    Text 266,23,"H"
  290.    Box 264,15 To 274,25
  291.    Ink 3 : Paint 265,16 : Paint 251,16
  292. End Proc
  293. Procedure EFFECTS
  294.    If SCR=0 Then ERR
  295.    If SCR<89 Then Goto S
  296.    Change Mouse 3
  297.    W=Screen Width
  298.    H=Screen Height
  299.    For Y=0 To H
  300.       For X=0 To W
  301.          U=0 : UU=0
  302.          F=Point(X+U,Y+UU)
  303.          F=F-CL : 
  304.          If F<0 Then F=F*(-1)
  305.          Ink F
  306.          Plot X+U,Y+UU
  307.          M=Mouse Click
  308.          If M=1 Then Goto A : 
  309.       Next 
  310.    Next 
  311.    Change Mouse 1
  312. End Proc
  313. Procedure ERR
  314.    Bell 1
  315.    Palette $FF
  316.    Wait 20
  317.    Bell 10
  318.    Palette 0
  319.    Change Mouse 1
  320.    SCR=0
  321.    Goto S
  322. End Proc
  323. Procedure FUN
  324.    If SCR=0 Then ERR
  325.    If SCR<89 Then Goto S
  326.    Change Mouse 3
  327.    RD=Rnd(5)
  328.    For Y=0 To H
  329.       For X=0 To W
  330.          M=Mouse Click
  331.          If M=1 Then Goto A
  332.          C=Point(X,Y)
  333.          If C3=1 Then D=C+1
  334.          If C3=2 Then D=C-1
  335.          If D>SCR Then D=SCR
  336.          If S<0 Then D=0
  337.          Ink D
  338.          Plot X,Y
  339.       Next 
  340.    Next 
  341.    Change Mouse 1
  342. End Proc
  343. Procedure QUIT
  344.    Flash Off 
  345.    If CL=4 Then Fade 10
  346.    If CL=16 Then Shift Down 4,0,15,0
  347.    If CL=32 Then Shift Up 1,0,31,1
  348.    Wait 300
  349.    Shift Off 
  350.    Fade 3 : Wait 45
  351.    Screen Close 0
  352. End Proc
  353. Procedure SVE
  354.    If F$="Nothing Loaded!" Then Goto A
  355.    F$=Fsel$("","","SAVE A PICTURE")
  356.    If F$="" Then Goto R
  357.    Change Mouse 3
  358.    Save Iff F$,1
  359.    Change Mouse 1
  360.    R:
  361. End Proc
  362. Procedure CCOL
  363.    If C3=2 and CL=16 Then Palette 0,$100,$200,$300,$400,$500,$600,$700,$800,$900,$A00,$B00,$C00,$D00,$E00,$F00 : Goto L
  364.    If C3=2 and CL=32 Then Palette 0,0,$100,$100,$200,$200,$300,$300,$400,$400,$500,$500,$600,$600,$700,$700,$800,$800,$900,$900,$A00,$A00,$B00,$B00,$C00,$C00,$D00,$D00,$E00,$E00,$F00,$F00 : Goto L
  365.    If C3=3 and CL=16 Then Palette 0,$10,$20,$30,$40,$50,$60,$70,$80,$90,$A0,$B0,$C0,$D0,$E0,$F0 : Goto L
  366.    If C3=3 and CL=32 Then Palette 0,0,$10,$10,$20,$20,$30,$30,$40,$40,$50,$50,$60,$60,$70,$70,$80,$80,$90,$90,$A0,$A0,$B0,$B0,$C0,$C0,$D0,$D0,$E0,$E0,$F0,$F0 : Goto L
  367.    If C3=4 and CL=16 Then Palette 0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F : Goto L
  368.    If C3=4 and CL=32 Then Palette 0,0,$1,$1,$2,$2,$3,$3,$4,$4,$5,$5,$6,$6,$7,$7,$8,$8,$9,$9,$A,$A,$B,$B,$C,$C,$D,$D,$E,$E,$F,$F : Goto L
  369.    L:
  370. End Proc
  371. Procedure MTOL
  372.    If MEM=False Then ER : Goto G
  373.    Screen Open 1,320,250,CL,Lowres
  374.    Screen 1 : Cls 0
  375.    Screen To Front 1
  376.    If SCR=0 Then ERR
  377.    Screen 0
  378.    O=0
  379.    For Y=0 To H
  380.       O=0
  381.       For X=0 To W Step 2
  382.          O=O+1
  383.          M=Mouse Click
  384.          If M=1 Then Goto G
  385.          F=Point(X,Y)
  386.          Ink F
  387.          Screen 1
  388.          Plot O,Y
  389.          Screen 0
  390.       Next 
  391.    Next 
  392.    Ink 0
  393.    Fade 3 To 0
  394.    Screen Close 0
  395.    Screen Copy 1 To 0
  396.    Screen Close 1
  397.    G:
  398. End Proc
  399. Procedure FLIPV
  400.    Change Mouse 3
  401.    If SCR=0 Then ERR
  402.    For Y=0 To H/2
  403.       For X=0 To W
  404.          M=Mouse Click : If M=1 Then Goto A
  405.          C1=Point(X,Y) : C2=Point(X,H-Y)
  406.          Ink C1 : Plot X,H-Y
  407.          Ink C2 : Plot X,Y
  408.       Next 
  409.    Next 
  410.    Change Mouse 1
  411. End Proc
  412. Procedure FLIPH
  413.    If SCR=0 Then ERR
  414.    Change Mouse 3
  415.    For Y=0 To H
  416.       For X=0 To(W/2)-1
  417.          M=Mouse Click : If M=1 Then Goto A
  418.          C=Point(X,Y) : C1=Point(W-X,Y)
  419.          Ink C : Plot W-X,Y : Ink C1 : Plot X,Y
  420.       Next 
  421.    Next 
  422.    Change Mouse 1
  423. End Proc
  424. Procedure DK
  425.    If SCR=0 Then ERR
  426.    Change Mouse 3
  427.    If C3=2 Then O=8000
  428.    If C3=3 Then O=649900
  429.    Randomize(Timer)
  430.    For T=1 To O
  431.       M=Mouse Click : If M=1 Then Goto A : 
  432.       X=Rnd(320) : Y=Rnd(250)
  433.       F=Point(X,Y) : F1=Point(X,Y+1) : F2=Point(X,Y+2)
  434.       Ink F
  435.       Plot X,Y+1 : Ink F1 : Plot X,Y+2 : Ink F2 : Plot X,Y+3
  436.    Next 
  437.    Change Mouse 1
  438. End Proc
  439. Procedure SPLAT
  440.    If SCR=0 Then ERR
  441.    Change Mouse 3
  442.    Randomize(Timer)
  443.    For T=1 To 8000
  444.       M=Mouse Click : If M=1 Then Goto A : 
  445.       X=Rnd(320) : Y=Rnd(250)
  446.       F=Point(X,Y) : F1=Point(X,Y+1) : F2=Point(X,Y+2)
  447.       Ink F
  448.       Plot X,Y+1 : Ink F1 : Rem Plot X,Y+2 : Ink F2 : Plot X,Y+3 
  449.       Plot X,Y-1 : Plot X,Y-2 : Plot X,Y+2
  450.       Plot X-2,Y : Plot X-1,Y : Plot X+1,Y : Plot X+2,Y
  451.    Next 
  452.    Change Mouse 1
  453. End Proc
  454. Procedure KLEAR
  455.    Screen Close 0
  456.    Screen Open 0,320,90,4,Lowres
  457.    Cls 0
  458.    Paper 0
  459.    Palette $44,$F,$0
  460.    Curs Off 
  461.    H=0 : W=0 : SCR=0 : F$="Nothing Loaded!"
  462. End Proc
  463. Procedure CUSTOM
  464.    Do 
  465.       X=X Mouse
  466.       Y=Y Mouse
  467.       C=(X+Y)*10
  468.       '     'U=(X*Y)-C   
  469.       Palette C,X,Y,U
  470.       M=Mouse Click
  471.       If M=1 Then Goto O
  472.       Wait Vbl 
  473.    Loop 
  474.    O:
  475. End Proc
  476. Procedure ABOUT
  477.    Hide 
  478.    Cls 0 : Home 
  479.    Print "Amos"
  480.    Print "Image "
  481.    Print "Manipulation"
  482.    Print 
  483.    Print "By"
  484.    Print "Martin "
  485.    Print "Donnelly"
  486.    Wait 60
  487.    Cls : Home 
  488.    Print "Hi to Nick, Alan, John, Ronnie, Dave, Liam"
  489.    Print "Every one connected with Megasoft and Zenith P.d."
  490.    Print "Lorrie at Lorenzos Domain. Every on connected with ?"
  491.    Wait 120
  492.    Cls : Home 
  493.    Print "Need any help, click on the H"
  494.    Print 
  495.    Print 
  496.    Print "A.I.M. Copyright M.Donnelly and Megasoft 1991"
  497.    Wait 60
  498.    Show 
  499. End Proc
  500. Procedure HELP
  501.    Cls 0 : Home 
  502.    Print "Help Screen"
  503.    Print "this for those people that do not have PIX-MATE"
  504.    Print 
  505.    Print "Click on icon to use that function "
  506.    Print "here are a list of key presses "
  507.    Print 
  508.    Wait 170
  509.    Print "l for load | x for save | s for shrink "
  510.    Print "5 for smear | i for Invert | F for fun "
  511.    Print " v to flip the screen verticaly "
  512.    Print " h to flip it horizontaly "
  513.    Wait 170
  514.    Print " c to change colour | d for dekay | k to klear the gfx screen "
  515.    Print " p to pixilize the screen   "
  516.    Print " * to change menu bar cols"
  517.    Print " m for Mres to lores : 1meg machines only"
  518.    Print "Control C = exit"
  519.    Print "Warning! There is no OK? on the quit icon"
  520.    Wait 200
  521. End Proc
  522. Procedure ER
  523.    Cls 0 : Home 
  524.    For T=1 To 10
  525.       Print "Not enough memory!!!!!!!"
  526.    Next 
  527.    Wait 100
  528. End Proc
  529. Procedure BLACK
  530.    Menu Off 
  531.    Change Mouse 2
  532.    Screen Open 1,320,50,CL,Lowres
  533.    Flash Off 
  534.    Fade 3 To 0
  535.    Wait 30
  536.    Cls 0 : Paper 0 : Print At(7,0);"Black out the background"
  537.    Print At(7,1);"Use 'm' to magnify the box"
  538.    Do 
  539.       Screen 0
  540.       X=X Mouse-128 : Y=Y Mouse-42
  541.       A$=Inkey$
  542.       If A$="" Then Zoom 0,X-10,Y-10,X+10,Y+10 To 1,10,0,50,40
  543.       If A$="m" Then Zoom 0,X-5,Y-5,X+5,Y+5 To 1,10,0,50,40
  544.       ARRA
  545.       X1=X Mouse-128 : Y1=Y Mouse-42
  546.       M=Mouse Click
  547.       K=Mouse Key
  548.       Ink 0
  549.       If K=1 Then Plot X,Y
  550.       If K=1 Then Draw X,Y To X1,Y1
  551.       If M=2 Then Goto H
  552.    Loop 
  553.    H:
  554.    Change Mouse 1
  555.    Screen Close 1
  556.    Menu On 
  557. End Proc
  558. Procedure HALF
  559.    H1=H/2
  560.    O=-1
  561.    Change Mouse 3
  562.    For Y=0 To H Step 2
  563.       O=O+1
  564.       For X=0 To W
  565.          C=Point(X,Y) : Ink C
  566.          Plot X,O
  567.       Next 
  568.    Next 
  569.    Change Mouse 1
  570.    Ink 0
  571.    Bar 0,O To W,H
  572. End Proc
  573. Procedure BLOW
  574.    Randomize(Timer)
  575.    Change Mouse 3
  576.    For T=1 To 8000
  577.       M=Mouse Click
  578.       If M=1 Then Goto A
  579.       X=Rnd(W)
  580.       Y=Rnd(H)
  581.       F=Point(X,Y)
  582.       G=Rnd(5)
  583.       For D=1 To 5
  584.          M=Mouse Click
  585.          If M=1 Then Goto A
  586.          Ink F
  587.          Circle X,Y,D
  588.       Next 
  589.    Next 
  590. End Proc
  591. Procedure ARRA
  592.    Screen 1
  593.    H=Rnd(CL)
  594.    Ink H
  595.    Box 25,20 To 35,22
  596.    Box 29,15 To 31,27
  597.    Screen 0
  598. End Proc